package com.sinog.biz.mapper.havexml.other;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinog.core.domain.User;
import com.sinog.core.domain.UserInterFaceEntity;
import com.sinog.core.domain.UserLoginDetails;
import com.sinog.core.model.AuthUserVo;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Map;

/**
 * @desc 用户登录详情mapper
 * @author lzq
 * @date -
 */
public interface UserLoginDetailsMapper extends BaseMapper<UserLoginDetails> {

    /**
     * 根据账号查询用户
     * @param userAccount userAccount
     * @return User
     */
    User getUserByAccount(String userAccount);

    /**
     * 查询user_login_details列表
     * @param page page
     * @param map map
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> getLoginDetailsList(Page page,@Param("map") Map<String,Object> map);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 根据账号查询
     * @param departId departId
     * @return UserInterFaceEntity
     */
    UserInterFaceEntity getInfoByDepartId(String departId);

    /**
     * 根据部门id查询用户是否存在
     * @param departId 部门id
     * @return List<User>
     */
    List<User> getUserByDepartId(String departId);

    /**
     * 新增auth_user信息
     * @param authUserVo authUserVo
     */
    void insertAuthUser(@Param("authUserVo") AuthUserVo authUserVo);

    /**
     * 修改auth_user信息
     * @param authUser authUserVo
     */
    void updateAuthUser(@Param("authUser") AuthUserVo authUser);

    /**
     * 新增tbsys_user信息
     * @param user user
     */
    void insertSystemUser(@Param("user") User user);

    /**
     * 修改tbsys_user信息
     * @param user user
     */
    void updateSystemUser(@Param("user") User user);

    /**
     * 根据账号查找auth_user
     * @param account account
     * @return AuthUserVo
     */
    AuthUserVo selectAuthUserByAccount(String account);

    /**
     * 查询userLoginDetails表中workday字段为空的数据
     * @return List<UserLoginDetails>
     */
    List<UserLoginDetails> selectWorkDayIsNull();

    /**
     * 批量更新userLoginDetails中的workday字段
     * @param userLoginDetails userLoginDetails
     */
     void batchUpdateWorkDay(List<UserLoginDetails> userLoginDetails);
}